package cc.rengu.igas.momp.core.service.trans;

import cc.rengu.igas.momp.common.constant.CommonConstant;
import cc.rengu.igas.momp.common.dao.McMchntInfoMapper;
import cc.rengu.igas.momp.common.dao.McOrgInfoMapper;
import cc.rengu.igas.momp.common.dao.impl.McMchntInfoMapperImpl;
import cc.rengu.igas.momp.common.dao.impl.McOrgInfoMapperImpl;
import cc.rengu.igas.momp.common.entity.*;
import cc.rengu.igas.momp.common.enums.*;
import cc.rengu.igas.momp.facade.bean.McMchntInfoBean;
import cc.rengu.igas.momp.facade.request.QueryMchntJoinMchntFeeDiscountRequest;
import cc.rengu.igas.momp.facade.response.QueryMchntJoinMchntFeeDiscountResponse;
import cc.rengu.oltp.service.base.RadpService;
import cc.rengu.oltp.service.common.constant.TreeNodeConstant;
import cc.rengu.oltp.service.common.enums.ChannelEnum;
import cc.rengu.oltp.service.common.enums.OltpRpcdEnum;
import cc.rengu.oltp.service.model.BizException;
import cc.rengu.oltp.service.model.BizResponse;
import cc.rengu.oltp.utility.util.ConvertUtil;
import cc.rengu.oltp.utility.util.XmlTreeUtil;
import cc.rengu.utility.base.StringUtil;

import java.io.ByteArrayOutputStream;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;

/**
 * @author ls
 * @version 1.0.0
 * @date 2020/09/11 14:02
 * @description 商户参与银行对商户手续费减免活动列表查询功能实现
 */
public class QueryMchntJoinMchntFeeDiscountService extends RadpService {

    /**
     * 法人机构号
     */
    private String globalInstId;
    /**
     * 操作类型
     */
    private String globalQueryType;
    /**
     * 操作人
     */
    private String globalQueryId;
    /**
     * 操作角色
     */
    private String globalQueryRole;
    /**
     * 操作人所属机构
     */
    private String globalQueryOrgId;
    /**
     * 当前系统日期
     */
    private String globalTimeStamp;

    private List<TMMcOrgInfo> tmMcOrgInfoList = new ArrayList<>();

    //营销活动信息列表
    private List<McMchntInfoBean> mcMchntInfoBeanList = new ArrayList<>();
    //数据库查询 回传 暂存list
    private List<MchntJoinMchntFeeDiscountOutObj> mchntJoinMchntFeeDiscountOutObjs = new ArrayList<>();

    @Override
    protected int bizInit(String s) {
        return CommonConstant.PROCESS_SUCCESS;
    }

    @Override
    protected int bizProcess(String s, int i) {

        XmlTreeUtil xmlTreeUtil = new XmlTreeUtil();
        try {
            QueryMchntJoinMchntFeeDiscountRequest queryMchntJoinMchntFeeDiscountRequest = new QueryMchntJoinMchntFeeDiscountRequest();
            ConvertUtil.convertOutput(queryMchntJoinMchntFeeDiscountRequest);

            QueryMchntJoinMchntFeeDiscountResponse queryMchntJoinMchntFeeDiscountResponse = new QueryMchntJoinMchntFeeDiscountResponse();
            queryMchntJoinMchntFeeDiscountResponse.setHeader(queryMchntJoinMchntFeeDiscountRequest.getHeader());
            BizResponse<QueryMchntJoinMchntFeeDiscountResponse> bizResponse = new BizResponse<>();
            bizResponse.setResult(queryMchntJoinMchntFeeDiscountResponse);

            //报文检查
            messageValidation(queryMchntJoinMchntFeeDiscountRequest);

            //查询上送机构及下属机构
            McOrgInfoMapper mcOrgInfoMapper = new McOrgInfoMapperImpl();
            tmMcOrgInfoList = mcOrgInfoMapper.selectAllMcOrgInfoListByinstIdOrgId(queryMchntJoinMchntFeeDiscountRequest.getHeader().getInstId(), globalQueryOrgId);
            if (null == tmMcOrgInfoList || tmMcOrgInfoList.size() == 0) {
                /* 代理商、收银员或用户 */
                rglog.error("查询当前角色<{}>机构<{}>及其下属机构失败!", queryMchntJoinMchntFeeDiscountRequest.getQueryRole(), globalQueryOrgId);
                throw new BizException(RespCodeEnum.GET_MC_ORG_INFO_ERROR.getRespCode(), RespCodeEnum.GET_MC_ORG_INFO_ERROR.getRespDesc());
            }

            // 服务调用
            BizResponse<QueryMchntJoinMchntFeeDiscountResponse> bizResponseNew = queryMchntJoinMchntFeeDiscountList(queryMchntJoinMchntFeeDiscountRequest, queryMchntJoinMchntFeeDiscountResponse, xmlTreeUtil);

            ConvertUtil.convertInput(bizResponseNew.getResult());

        } catch (BizException e) {
            try {
                xmlTreeUtil.setXmlTreeStringValue(TreeNodeConstant.RESP_CODE, e.getCode());
                xmlTreeUtil.setXmlTreeStringValue(TreeNodeConstant.RESP_DESC, e.getMessage());
                xmlTreeUtil.setXmlTreeStringValue(CommonConstant.KEY_RESPDESC, e.getMessage());
            } catch (Exception e1) {
                rglog.error(StringUtil.ExceptionToString(e1));
            }
        } catch (Exception e) {
            rglog.error(StringUtil.ExceptionToString(e));
            try {
                xmlTreeUtil.setXmlTreeStringValue(TreeNodeConstant.RESP_CODE, OltpRpcdEnum.OLTP_PROCESS_ERROR.getRespCode());
                xmlTreeUtil.setXmlTreeStringValue(TreeNodeConstant.RESP_DESC, OltpRpcdEnum.OLTP_PROCESS_ERROR.getRespDesc());
                xmlTreeUtil.setXmlTreeStringValue(CommonConstant.KEY_RESPDESC, e.getMessage());
            } catch (Exception e1) {
                rglog.error(StringUtil.ExceptionToString(e));
            }
        }

        return CommonConstant.PROCESS_SUCCESS;
    }

    @Override
    protected int bizTerminate(String s) {
        return CommonConstant.PROCESS_SUCCESS;
    }


    /**
     * 营销活动列表查询
     *
     * @author ls
     * @date 2020/09/11 15:23
     */
    private BizResponse<QueryMchntJoinMchntFeeDiscountResponse> queryMchntJoinMchntFeeDiscountList(QueryMchntJoinMchntFeeDiscountRequest queryMchntJoinMchntFeeDiscountRequest, QueryMchntJoinMchntFeeDiscountResponse queryMchntJoinMchntFeeDiscountResponse, XmlTreeUtil xmlTreeUtil)
            throws Exception {

        BizResponse<QueryMchntJoinMchntFeeDiscountResponse> bizResponse = new BizResponse<>();
        rglog.debug("TXN_NUM = {}", queryMchntJoinMchntFeeDiscountRequest.getHeader().getTxnNum());

        rglog.debug("当前是<{}>查询数据", QueryRoleEnum.getByValue(globalQueryRole).getQueryRoleDesc());

        if (QueryTypeEnum.BANK_QUERY_TYPE.getQueryTypeCode().equals(globalQueryType) && QueryRoleEnum.BANK_BASIC_QUERY_ROLE.getQueryRoleCode().equals(globalQueryRole)) {
            //1. 查询数据
            getMchntJoinMchntFeeDiscountInfo(queryMchntJoinMchntFeeDiscountRequest);
            //根据取出记录条数做对应处理
            if (null == mchntJoinMchntFeeDiscountOutObjs || mchntJoinMchntFeeDiscountOutObjs.isEmpty()) {
                rglog.info("根据查询条件查询到0条银行对商户手续费减免活动信息!");
            } else {
                rglog.info("记录条数:SIZE=<{}>", mchntJoinMchntFeeDiscountOutObjs.size());
                //2.
                mcMchntInfoBeanList = mchntJoinMchntFeeDiscountOutObjs.stream().map(this::convertMchntJoinMchntFeeDiscount).collect(Collectors.toList());

                /* 代码过滤查询条件 */
                //3.按照营销活动名称筛选
                if (!StringUtil.isNullorEmpty(queryMchntJoinMchntFeeDiscountRequest.getMcName())) {
                    mcMchntInfoBeanList = mcMchntInfoBeanList.stream().filter(item -> item.getMcName().contains(queryMchntJoinMchntFeeDiscountRequest.getMcName())).collect(Collectors.toList());
                }
            }
            // 4 响应
            queryMchntJoinMchntFeeDiscountResponse.setMchntInfoList(mcMchntInfoBeanList);
        }

        bizResponse.setRspSysId(ChannelEnum.MOMP.getChannelType());
        bizResponse.setRespCode(RespCodeEnum.TRANS_SUCCESS.getRespCode());
        bizResponse.setRespDesc(RespCodeEnum.TRANS_SUCCESS.getRespDesc());

        queryMchntJoinMchntFeeDiscountResponse.setRespCode(RespCodeEnum.TRANS_SUCCESS.getRespCode());
        queryMchntJoinMchntFeeDiscountResponse.setRespDesc(RespCodeEnum.TRANS_SUCCESS.getRespDesc());
        bizResponse.setResult(queryMchntJoinMchntFeeDiscountResponse);

        return bizResponse;
    }

    /**
     * @param queryMchntJoinMchntFeeDiscountRequest
     * @author ls
     * @date 2020/9/11
     * @description 查询 商户参与银行对商户手续费减免活动列表
     */
    private void getMchntJoinMchntFeeDiscountInfo(QueryMchntJoinMchntFeeDiscountRequest queryMchntJoinMchntFeeDiscountRequest) throws Exception {

        //查询类型
        String queryType = queryMchntJoinMchntFeeDiscountRequest.getQueryType();
        //查询主体角色
        String queryRole = queryMchntJoinMchntFeeDiscountRequest.getQueryRole();

        //查询类型为收银员,商户,用户,无权限查询
        if (QueryTypeEnum.CASHIER_QYERY_TYPE.getQueryTypeCode().equals(queryType) ||
                QueryTypeEnum.MCHNT_QYERY_TYPE.getQueryTypeCode().equals(queryType) ||
                QueryTypeEnum.USER_QYERY_TYPE.getQueryTypeCode().equals(queryType)) {
            rglog.error("查询类型为<{}>,无权限查询银行对商户手续费减免活动列表信息!", queryType);
            throw new BizException(RespCodeEnum.NO_AUTHORIZATION_TO_QUERY_ERROR.getRespCode(), RespCodeEnum.NO_AUTHORIZATION_TO_QUERY_ERROR.getRespDesc());
        }
        //查询类型为银行
        else if (QueryTypeEnum.BANK_QUERY_TYPE.getQueryTypeCode().equals(queryType)) {
            switch (QueryRoleEnum.getByValue(queryRole)) {
                case BANK_BASIC_QUERY_ROLE:
                    /* 银行录入岗 */
                    selectMchntJoinMchntFeeDiscountNew(queryMchntJoinMchntFeeDiscountRequest);
                    break;
                default:
                    /* 其他查询角色不支持 */
                    rglog.error("当前<{}>角色的查询用户无权限操作数据!", queryRole);
                    throw new BizException(RespCodeEnum.NO_AUTHORIZATION_TO_OPER_ERROR.getRespCode(), RespCodeEnum.NO_AUTHORIZATION_TO_OPER_ERROR.getRespDesc());
            }
        } else {
            /* 其他查询类型不支持 */
            rglog.error("当前<{}>查询类型的查询用户无权限操作数据!", queryType);
            throw new BizException(RespCodeEnum.NO_AUTHORIZATION_TO_OPER_ERROR.getRespCode(), RespCodeEnum.NO_AUTHORIZATION_TO_OPER_ERROR.getRespDesc());
        }
    }


    /**
     * 数据库查询前赋值数据库实体类入参
     *
     * @param queryMchntJoinMchntFeeDiscountRequest 商户参与银行对商户手续费减免活动列表查询 接口请求对象
     * @return cc.rengu.igas.momp.common.entity.MchntJoinMchntFeeDiscountInObj 商户参与银行对商户手续费减免活动列表查询实体类入参
     * @author LS
     * @date 2020/9/28 12:57
     */
    private MchntJoinMchntFeeDiscountInObj setupDatabaseInputObject(QueryMchntJoinMchntFeeDiscountRequest queryMchntJoinMchntFeeDiscountRequest, McMchntInfoBean mcMchntInfoBean) {

        MchntJoinMchntFeeDiscountInObj mchntJoinMchntFeeDiscountInObj = new MchntJoinMchntFeeDiscountInObj();
        /* 机构编码 */
        mchntJoinMchntFeeDiscountInObj.setInstId(queryMchntJoinMchntFeeDiscountRequest.getHeader().getInstId());
        /* 查询主体所属机构 */
        mchntJoinMchntFeeDiscountInObj.setOrgId(queryMchntJoinMchntFeeDiscountRequest.getQueryOrgId());
        rglog.info("INST_ID=<{}>", queryMchntJoinMchntFeeDiscountRequest.getHeader().getInstId());

        /* 查询主体参加活动标志 */
        if (!StringUtil.isNullorEmpty(queryMchntJoinMchntFeeDiscountRequest.getAttendFlag())) {
            mchntJoinMchntFeeDiscountInObj.setAttendFlag(queryMchntJoinMchntFeeDiscountRequest.getAttendFlag());
        }
        /* 营销活动编号 */
        if (!StringUtil.isNullorEmpty(queryMchntJoinMchntFeeDiscountRequest.getMcNo())) {
            mchntJoinMchntFeeDiscountInObj.setMcNo(queryMchntJoinMchntFeeDiscountRequest.getMcNo());
        }
        /* 营销活动名称 */
        if (!StringUtil.isNullorEmpty(queryMchntJoinMchntFeeDiscountRequest.getMcName())) {
            mchntJoinMchntFeeDiscountInObj.setMcName(queryMchntJoinMchntFeeDiscountRequest.getMcName());
        }
        /* 营销活动类型 */
        if (!StringUtil.isNullorEmpty(queryMchntJoinMchntFeeDiscountRequest.getMcType())) {
            mchntJoinMchntFeeDiscountInObj.setMcType(queryMchntJoinMchntFeeDiscountRequest.getMcType());
        }

        /* 商户范围类型 mchntType*/
        mchntJoinMchntFeeDiscountInObj.setMchntType(mcMchntInfoBean.getMchntType());
        /* 商户范围号 */
        mchntJoinMchntFeeDiscountInObj.setMchntNo(mcMchntInfoBean.getMchntNo());
        /* 商户名称	mchntName */
        mchntJoinMchntFeeDiscountInObj.setMchntName(mcMchntInfoBean.getMchntName());
        /* 操作类型	oprType*/
        mchntJoinMchntFeeDiscountInObj.setOprType(mcMchntInfoBean.getOprType());


        return mchntJoinMchntFeeDiscountInObj;
    }


    /**
     * 银行操作员查询代理商分润营销活动列表
     *
     * @param queryMchntJoinMchntFeeDiscountRequest 商户参与银行对商户手续费减免活动列表查询 接口请求对象
     * @throws Exception 异常信息
     * @author ls
     * @date 2020/9/11 19:34
     */
    private void selectMchntJoinMchntFeeDiscountNew(QueryMchntJoinMchntFeeDiscountRequest queryMchntJoinMchntFeeDiscountRequest) throws Exception {

        //确保商户list 不为空
        if (null == queryMchntJoinMchntFeeDiscountRequest.getMchntInfoList() || queryMchntJoinMchntFeeDiscountRequest.getMchntInfoList().isEmpty()) {
            rglog.error("商户信息列表为空!");
            throw new BizException(RespCodeEnum.MSG_VALID_CHECK_ERROR.getRespCode(), RespCodeEnum.MSG_VALID_CHECK_ERROR.getRespDesc());
        }

        // 遍历查询
        for (McMchntInfoBean mcMchntInfoBean : queryMchntJoinMchntFeeDiscountRequest.getMchntInfoList()) {

            //当必填项 为空时 跳过查询直接返回 原对象
            if (StringUtil.isNullorEmpty(mcMchntInfoBean.getMchntNo()) || StringUtil.isNullorEmpty(mcMchntInfoBean.getMchntName()) ||
                    StringUtil.isNullorEmpty(mcMchntInfoBean.getMchntType()) || StringUtil.isNullorEmpty(mcMchntInfoBean.getOprType())) {
                rglog.error("商户信息必填项为空!");

                mcMchntInfoBeanList.add(mcMchntInfoBean);

            } else {
                /* 数据库入参赋值 */
                MchntJoinMchntFeeDiscountInObj mchntJoinMchntFeeDiscountInObj = setupDatabaseInputObject(queryMchntJoinMchntFeeDiscountRequest, mcMchntInfoBean);
                //根据商户查询活动（调库）
                MchntJoinMchntFeeDiscountOutObj mchntJoinMchntFeeDiscountOutObj = selectMchntJoinMchntFeeDiscountByMchntInfo(mchntJoinMchntFeeDiscountInObj);

                //判断营销活动不为空 (为空直接存原对象)
                if (null != mchntJoinMchntFeeDiscountOutObj && null != mchntJoinMchntFeeDiscountOutObj.getMcNo()) {

                    mchntJoinMchntFeeDiscountOutObjs.add(mchntJoinMchntFeeDiscountOutObj);

                } else {

                    mcMchntInfoBeanList.add(mcMchntInfoBean);

                }
            }
        }

    }

    /**
     * 根据商户 查询营销活动
     *
     * @param mchntJoinMchntFeeDiscountInObj 商户参与银行对商户手续费减免活动列表查询 使用实体类入参
     * @return cc.rengu.igas.momp.common.entity.MchntJoinMchntFeeDiscountOutObj 商户参与银行对商户手续费减免活动列表查询  实体类出参
     * @throws Exception 异常信息
     * @author ls
     * @date 2020/9/11 19:34
     */
    private MchntJoinMchntFeeDiscountOutObj selectMchntJoinMchntFeeDiscountByMchntInfo(MchntJoinMchntFeeDiscountInObj mchntJoinMchntFeeDiscountInObj) throws Exception {
        //营销活动商户规则数据库操作接口定义
        McMchntInfoMapper mcMchntInfoMapper = new McMchntInfoMapperImpl();
        //商户参与银行对商户手续费减免活动
        return mcMchntInfoMapper.selectMchntJoinMchntFeeDiscountByMchntInfo(mchntJoinMchntFeeDiscountInObj);
    }

    /**
     * 查询数据库组装结果转换为接口响应
     *
     * @author ls
     * @date 2020/6/18 01:13
     */
    private McMchntInfoBean convertMchntJoinMchntFeeDiscount(MchntJoinMchntFeeDiscountOutObj mchntJoinMchntFeeDiscountOutObj) {

        McMchntInfoBean mcMchntInfoBean = new McMchntInfoBean();
        try {

            /* 营销活动编号 */
            if (!StringUtil.isNullorEmpty(mchntJoinMchntFeeDiscountOutObj.getMcNo())) {
                mcMchntInfoBean.setMcNo(mchntJoinMchntFeeDiscountOutObj.getMcNo());
            }
            /* 营销活动名称 */
            if (!StringUtil.isNullorEmpty(mchntJoinMchntFeeDiscountOutObj.getMcName())) {
                mcMchntInfoBean.setMcName(mchntJoinMchntFeeDiscountOutObj.getMcName());
            }
            /*商户范围类型	mchntType*/
            mcMchntInfoBean.setMchntType(mchntJoinMchntFeeDiscountOutObj.getMchntType());
            /*商户号*/
            mcMchntInfoBean.setMchntNo(mchntJoinMchntFeeDiscountOutObj.getMchntNo());
            /* 商户名称  mchntName*/
            mcMchntInfoBean.setMchntName(mchntJoinMchntFeeDiscountOutObj.getMchntName());
            /*操作类型	oprType*/
            mcMchntInfoBean.setOprType(mchntJoinMchntFeeDiscountOutObj.getOprType());


        } catch (Exception e) {
            ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
            e.printStackTrace(new PrintWriter(byteArrayOutputStream, true));
            rglog.error("转换营销活动信息异常,异常信息:<{}>", byteArrayOutputStream.toString());
            throw new BizException(RespCodeEnum.SYSTEM_ERROR.getRespCode(), RespCodeEnum.SYSTEM_ERROR.getRespDesc());
        }
        return mcMchntInfoBean;
    }

    /**
     * 请求报文体内容检查
     *
     * @param queryMchntJoinMchntFeeDiscountRequest 商户参与银行对商户手续费减免活动列表查询 接口请求对象
     * @author ls
     * @date 2020/09/11 14:21
     */
    private void messageValidation(QueryMchntJoinMchntFeeDiscountRequest queryMchntJoinMchntFeeDiscountRequest) {

        if (StringUtil.isNullorEmpty(queryMchntJoinMchntFeeDiscountRequest.getHeader().getTransDate())) {
            rglog.error("交易日期必须上送!");
            throw new BizException(RespCodeEnum.MSG_VALID_CHECK_ERROR.getRespCode(), RespCodeEnum.MSG_VALID_CHECK_ERROR.getRespDesc());
        }

        if (StringUtil.isNullorEmpty(queryMchntJoinMchntFeeDiscountRequest.getHeader().getTransTime())) {
            rglog.error("交易时间必须上送!");
            throw new BizException(RespCodeEnum.MSG_VALID_CHECK_ERROR.getRespCode(), RespCodeEnum.MSG_VALID_CHECK_ERROR.getRespDesc());
        }

        if (StringUtil.isNullorEmpty(queryMchntJoinMchntFeeDiscountRequest.getHeader().getInstId())) {
            rglog.error("法人机构号必须上送!");
            throw new BizException(RespCodeEnum.MSG_VALID_CHECK_ERROR.getRespCode(), RespCodeEnum.MSG_VALID_CHECK_ERROR.getRespDesc());
        } else {
            globalInstId = queryMchntJoinMchntFeeDiscountRequest.getHeader().getInstId();
        }

        if (StringUtil.isNullorEmpty(queryMchntJoinMchntFeeDiscountRequest.getHeader().getTraceNo())) {
            rglog.error("流水号必须上送!");
            throw new BizException(RespCodeEnum.MSG_VALID_CHECK_ERROR.getRespCode(), RespCodeEnum.MSG_VALID_CHECK_ERROR.getRespDesc());
        }

        if (StringUtil.isNullorEmpty(queryMchntJoinMchntFeeDiscountRequest.getQueryType())) {
            rglog.error("操作员类型为空!");
            throw new BizException(RespCodeEnum.MSG_VALID_CHECK_ERROR.getRespCode(), RespCodeEnum.MSG_VALID_CHECK_ERROR.getRespDesc());
        } else {
            globalQueryType = queryMchntJoinMchntFeeDiscountRequest.getQueryType();
        }

        if (StringUtil.isNullorEmpty(queryMchntJoinMchntFeeDiscountRequest.getQueryId())) {
            rglog.error("操作员ID为空!");
            throw new BizException(RespCodeEnum.MSG_VALID_CHECK_ERROR.getRespCode(), RespCodeEnum.MSG_VALID_CHECK_ERROR.getRespDesc());
        } else {
            globalQueryId = queryMchntJoinMchntFeeDiscountRequest.getQueryId();
        }

        if (StringUtil.isNullorEmpty(queryMchntJoinMchntFeeDiscountRequest.getQueryRole())) {
            rglog.error("操作员角色为空!");
            throw new BizException(RespCodeEnum.MSG_VALID_CHECK_ERROR.getRespCode(), RespCodeEnum.MSG_VALID_CHECK_ERROR.getRespDesc());
        } else {
            globalQueryRole = queryMchntJoinMchntFeeDiscountRequest.getQueryRole();
        }

        if (StringUtil.isNullorEmpty(queryMchntJoinMchntFeeDiscountRequest.getQueryOrgId())) {
            rglog.error("操作员所属法人机构为空!");
            throw new BizException(RespCodeEnum.MSG_VALID_CHECK_ERROR.getRespCode(), RespCodeEnum.MSG_VALID_CHECK_ERROR.getRespDesc());
        } else {
            globalQueryOrgId = queryMchntJoinMchntFeeDiscountRequest.getQueryOrgId();
        }

        if (null == queryMchntJoinMchntFeeDiscountRequest.getMchntInfoList() || queryMchntJoinMchntFeeDiscountRequest.getMchntInfoList().isEmpty()) {
            rglog.error("商户信息列表为空!");
            throw new BizException(RespCodeEnum.MSG_VALID_CHECK_ERROR.getRespCode(), RespCodeEnum.MSG_VALID_CHECK_ERROR.getRespDesc());
        }

        globalTimeStamp = new SimpleDateFormat(CommonConstant.TIMESTAMP_FORMAT).format(new Date());
    }
}

